// starting var veh , i , X , Y ; begin veh = FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) ;
   0: LD_ADDR_VAR 0 1
   4: PUSH
   5: LD_INT 22
   7: PUSH
   8: LD_INT 1
  10: PUSH
  11: EMPTY
  12: LIST
  13: LIST
  14: PUSH
  15: LD_INT 21
  17: PUSH
  18: LD_INT 2
  20: PUSH
  21: EMPTY
  22: LIST
  23: LIST
  24: PUSH
  25: LD_INT 33
  27: PUSH
  28: LD_INT 3
  30: PUSH
  31: EMPTY
  32: LIST
  33: LIST
  34: PUSH
  35: EMPTY
  36: LIST
  37: LIST
  38: LIST
  39: PPUSH
  40: CALL_OW 69
  44: ST_TO_ADDR
// ComMoveXY ( poj1 , 118 , 19 ) ;
  45: LD_INT 538
  47: PPUSH
  48: LD_INT 118
  50: PPUSH
  51: LD_INT 19
  53: PPUSH
  54: CALL_OW 111
// ComMoveXY ( poj2 , 120 , 23 ) ;
  58: LD_INT 536
  60: PPUSH
  61: LD_INT 120
  63: PPUSH
  64: LD_INT 23
  66: PPUSH
  67: CALL_OW 111
// ComMoveXY ( poj3 , 122 , 27 ) ;
  71: LD_INT 533
  73: PPUSH
  74: LD_INT 122
  76: PPUSH
  77: LD_INT 27
  79: PPUSH
  80: CALL_OW 111
// ComMoveXY ( poj4 , 124 , 31 ) ;
  84: LD_INT 504
  86: PPUSH
  87: LD_INT 124
  89: PPUSH
  90: LD_INT 31
  92: PPUSH
  93: CALL_OW 111
// ComMoveXY ( poj5 , 126 , 35 ) ;
  97: LD_INT 493
  99: PPUSH
 100: LD_INT 126
 102: PPUSH
 103: LD_INT 35
 105: PPUSH
 106: CALL_OW 111
// ComMoveXY ( poj6 , 128 , 39 ) ;
 110: LD_INT 491
 112: PPUSH
 113: LD_INT 128
 115: PPUSH
 116: LD_INT 39
 118: PPUSH
 119: CALL_OW 111
// ComMoveXY ( poj7 , 130 , 43 ) ;
 123: LD_INT 523
 125: PPUSH
 126: LD_INT 130
 128: PPUSH
 129: LD_INT 43
 131: PPUSH
 132: CALL_OW 111
// ComMoveXY ( poj8 , 132 , 47 ) ;
 136: LD_INT 470
 138: PPUSH
 139: LD_INT 132
 141: PPUSH
 142: LD_INT 47
 144: PPUSH
 145: CALL_OW 111
// ComMoveXY ( poj9 , 134 , 51 ) ;
 149: LD_INT 472
 151: PPUSH
 152: LD_INT 134
 154: PPUSH
 155: LD_INT 51
 157: PPUSH
 158: CALL_OW 111
// ComMoveXY ( poj10 , 136 , 55 ) ;
 162: LD_INT 489
 164: PPUSH
 165: LD_INT 136
 167: PPUSH
 168: LD_INT 55
 170: PPUSH
 171: CALL_OW 111
// ComMoveXY ( poj11 , 138 , 59 ) ;
 175: LD_INT 501
 177: PPUSH
 178: LD_INT 138
 180: PPUSH
 181: LD_INT 59
 183: PPUSH
 184: CALL_OW 111
// ComMoveXY ( poj12 , 140 , 63 ) ;
 188: LD_INT 515
 190: PPUSH
 191: LD_INT 140
 193: PPUSH
 194: LD_INT 63
 196: PPUSH
 197: CALL_OW 111
// ComMoveXY ( poj13 , 140 , 66 ) ;
 201: LD_INT 475
 203: PPUSH
 204: LD_INT 140
 206: PPUSH
 207: LD_INT 66
 209: PPUSH
 210: CALL_OW 111
// ComMoveXY ( poj14 , 141 , 69 ) ;
 214: LD_INT 496
 216: PPUSH
 217: LD_INT 141
 219: PPUSH
 220: LD_INT 69
 222: PPUSH
 223: CALL_OW 111
// ComMoveXY ( poj15 , 131 , 50 ) ;
 227: LD_INT 512
 229: PPUSH
 230: LD_INT 131
 232: PPUSH
 233: LD_INT 50
 235: PPUSH
 236: CALL_OW 111
// ComMoveXY ( poj16 , 133 , 55 ) ;
 240: LD_INT 497
 242: PPUSH
 243: LD_INT 133
 245: PPUSH
 246: LD_INT 55
 248: PPUSH
 249: CALL_OW 111
// buildUS ;
 253: CALL 266 0 0
// RUSLane1 ;
 257: CALL 749 0 0
// RUSLane2 ;
 261: CALL 1767 0 0
// end ; end_of_file
 265: END
// export Am1_turrets , i , l , levelS , levelMech , levelEng , Ru1_turrets , Ru2_turrets , Ru3_turrets , Ru4_turrets , Ru5_turrets , Ru6_turrets ; export function buildUS ; var un ; begin
 266: LD_INT 0
 268: PPUSH
 269: PPUSH
// Am1_turrets := FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_breastwork ] ] ) ;
 270: LD_ADDR_EXP 1
 274: PUSH
 275: LD_INT 22
 277: PUSH
 278: LD_INT 1
 280: PUSH
 281: EMPTY
 282: LIST
 283: LIST
 284: PUSH
 285: LD_INT 30
 287: PUSH
 288: LD_INT 32
 290: PUSH
 291: EMPTY
 292: LIST
 293: LIST
 294: PUSH
 295: EMPTY
 296: LIST
 297: LIST
 298: PPUSH
 299: CALL_OW 69
 303: PUSH
 304: LD_INT 22
 306: PUSH
 307: LD_INT 1
 309: PUSH
 310: EMPTY
 311: LIST
 312: LIST
 313: PUSH
 314: LD_INT 30
 316: PUSH
 317: LD_INT 31
 319: PUSH
 320: EMPTY
 321: LIST
 322: LIST
 323: PUSH
 324: EMPTY
 325: LIST
 326: LIST
 327: PPUSH
 328: CALL_OW 69
 332: ADD
 333: ST_TO_ADDR
// for i in Am1_turrets do
 334: LD_ADDR_EXP 2
 338: PUSH
 339: LD_EXP 1
 343: PUSH
 344: FOR_IN
 345: IFFALSE 522
// begin if IsInUnit ( i ) = 0 then
 347: LD_EXP 2
 351: PPUSH
 352: CALL_OW 310
 356: PUSH
 357: LD_INT 0
 359: EQUAL
 360: IFFALSE 520
// begin uc_side = 1 ;
 362: LD_ADDR_OWVAR 20
 366: PUSH
 367: LD_INT 1
 369: ST_TO_ADDR
// uc_nation = 1 ;
 370: LD_ADDR_OWVAR 21
 374: PUSH
 375: LD_INT 1
 377: ST_TO_ADDR
// hc_gallery =  ;
 378: LD_ADDR_OWVAR 33
 382: PUSH
 383: LD_STRING 
 385: ST_TO_ADDR
// hc_name =  ;
 386: LD_ADDR_OWVAR 26
 390: PUSH
 391: LD_STRING 
 393: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 394: LD_ADDR_OWVAR 29
 398: PUSH
 399: LD_INT 9
 401: PPUSH
 402: LD_INT 11
 404: PPUSH
 405: CALL_OW 12
 409: PUSH
 410: LD_INT 10
 412: PPUSH
 413: LD_INT 12
 415: PPUSH
 416: CALL_OW 12
 420: PUSH
 421: EMPTY
 422: LIST
 423: LIST
 424: ST_TO_ADDR
// hc_skills = [ 8 , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
 425: LD_ADDR_OWVAR 31
 429: PUSH
 430: LD_INT 8
 432: PUSH
 433: LD_INT 0
 435: PPUSH
 436: LD_INT 5
 438: PPUSH
 439: CALL_OW 12
 443: PUSH
 444: LD_INT 0
 446: PPUSH
 447: LD_INT 5
 449: PPUSH
 450: CALL_OW 12
 454: PUSH
 455: LD_INT 0
 457: PPUSH
 458: LD_INT 5
 460: PPUSH
 461: CALL_OW 12
 465: PUSH
 466: EMPTY
 467: LIST
 468: LIST
 469: LIST
 470: LIST
 471: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 472: LD_ADDR_OWVAR 27
 476: PUSH
 477: LD_INT 1
 479: PPUSH
 480: LD_INT 2
 482: PPUSH
 483: CALL_OW 12
 487: ST_TO_ADDR
// hc_class = 1 ;
 488: LD_ADDR_OWVAR 28
 492: PUSH
 493: LD_INT 1
 495: ST_TO_ADDR
// un := CreateHuman ;
 496: LD_ADDR_VAR 0 2
 500: PUSH
 501: CALL_OW 44
 505: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 506: LD_VAR 0 2
 510: PPUSH
 511: LD_EXP 2
 515: PPUSH
 516: CALL_OW 52
// end ; end ;
 520: GO 344
 522: POP
 523: POP
// for i in depotAM1 do
 524: LD_ADDR_EXP 2
 528: PUSH
 529: LD_INT 1
 531: PUSH
 532: FOR_IN
 533: IFFALSE 742
// begin l = 0 ;
 535: LD_ADDR_EXP 3
 539: PUSH
 540: LD_INT 0
 542: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
 543: LD_EXP 2
 547: PPUSH
 548: CALL_OW 310
 552: PUSH
 553: LD_INT 0
 555: EQUAL
 556: IFFALSE 740
// begin repeat uc_side = 1 ;
 558: LD_ADDR_OWVAR 20
 562: PUSH
 563: LD_INT 1
 565: ST_TO_ADDR
// uc_nation = 1 ;
 566: LD_ADDR_OWVAR 21
 570: PUSH
 571: LD_INT 1
 573: ST_TO_ADDR
// hc_gallery =  ;
 574: LD_ADDR_OWVAR 33
 578: PUSH
 579: LD_STRING 
 581: ST_TO_ADDR
// hc_name =  ;
 582: LD_ADDR_OWVAR 26
 586: PUSH
 587: LD_STRING 
 589: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 590: LD_ADDR_OWVAR 29
 594: PUSH
 595: LD_INT 9
 597: PPUSH
 598: LD_INT 11
 600: PPUSH
 601: CALL_OW 12
 605: PUSH
 606: LD_INT 10
 608: PPUSH
 609: LD_INT 12
 611: PPUSH
 612: CALL_OW 12
 616: PUSH
 617: EMPTY
 618: LIST
 619: LIST
 620: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , 8 , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
 621: LD_ADDR_OWVAR 31
 625: PUSH
 626: LD_INT 0
 628: PPUSH
 629: LD_INT 5
 631: PPUSH
 632: CALL_OW 12
 636: PUSH
 637: LD_INT 8
 639: PUSH
 640: LD_INT 0
 642: PPUSH
 643: LD_INT 5
 645: PPUSH
 646: CALL_OW 12
 650: PUSH
 651: LD_INT 0
 653: PPUSH
 654: LD_INT 5
 656: PPUSH
 657: CALL_OW 12
 661: PUSH
 662: EMPTY
 663: LIST
 664: LIST
 665: LIST
 666: LIST
 667: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
 668: LD_ADDR_OWVAR 27
 672: PUSH
 673: LD_INT 1
 675: PPUSH
 676: LD_INT 2
 678: PPUSH
 679: CALL_OW 12
 683: ST_TO_ADDR
// hc_class = 2 ;
 684: LD_ADDR_OWVAR 28
 688: PUSH
 689: LD_INT 2
 691: ST_TO_ADDR
// un := CreateHuman ;
 692: LD_ADDR_VAR 0 2
 696: PUSH
 697: CALL_OW 44
 701: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
 702: LD_VAR 0 2
 706: PPUSH
 707: LD_EXP 2
 711: PPUSH
 712: CALL_OW 52
// l = l + 1 ;
 716: LD_ADDR_EXP 3
 720: PUSH
 721: LD_EXP 3
 725: PUSH
 726: LD_INT 1
 728: PLUS
 729: ST_TO_ADDR
// until l = 4 ;
 730: LD_EXP 3
 734: PUSH
 735: LD_INT 4
 737: EQUAL
 738: IFFALSE 558
// end ; end ;
 740: GO 532
 742: POP
 743: POP
// end ;
 744: LD_VAR 0 1
 748: RET
// export function RUSLane1 ; var un ; begin
 749: LD_INT 0
 751: PPUSH
 752: PPUSH
// Ru1_turrets := FilterUnitsInArea ( RuLane1 , [ [ f_side , 3 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_breastwork ] ] ) ;
 753: LD_ADDR_EXP 7
 757: PUSH
 758: LD_INT 3
 760: PPUSH
 761: LD_INT 22
 763: PUSH
 764: LD_INT 3
 766: PUSH
 767: EMPTY
 768: LIST
 769: LIST
 770: PUSH
 771: LD_INT 30
 773: PUSH
 774: LD_INT 32
 776: PUSH
 777: EMPTY
 778: LIST
 779: LIST
 780: PUSH
 781: EMPTY
 782: LIST
 783: LIST
 784: PPUSH
 785: CALL_OW 70
 789: PUSH
 790: LD_INT 22
 792: PUSH
 793: LD_INT 3
 795: PUSH
 796: EMPTY
 797: LIST
 798: LIST
 799: PUSH
 800: LD_INT 30
 802: PUSH
 803: LD_INT 31
 805: PUSH
 806: EMPTY
 807: LIST
 808: LIST
 809: PUSH
 810: EMPTY
 811: LIST
 812: LIST
 813: PPUSH
 814: CALL_OW 69
 818: ADD
 819: ST_TO_ADDR
// levelS = [ 6 , 7 , 8 ] [ Difficulty ] ;
 820: LD_ADDR_EXP 4
 824: PUSH
 825: LD_INT 6
 827: PUSH
 828: LD_INT 7
 830: PUSH
 831: LD_INT 8
 833: PUSH
 834: EMPTY
 835: LIST
 836: LIST
 837: LIST
 838: PUSH
 839: LD_OWVAR 67
 843: ARRAY
 844: ST_TO_ADDR
// levelEng = [ 6 , 7 , 8 ] [ Difficulty ] ;
 845: LD_ADDR_EXP 6
 849: PUSH
 850: LD_INT 6
 852: PUSH
 853: LD_INT 7
 855: PUSH
 856: LD_INT 8
 858: PUSH
 859: EMPTY
 860: LIST
 861: LIST
 862: LIST
 863: PUSH
 864: LD_OWVAR 67
 868: ARRAY
 869: ST_TO_ADDR
// for i in Ru1_turrets do
 870: LD_ADDR_EXP 2
 874: PUSH
 875: LD_EXP 7
 879: PUSH
 880: FOR_IN
 881: IFFALSE 1060
// begin if IsInUnit ( i ) = 0 then
 883: LD_EXP 2
 887: PPUSH
 888: CALL_OW 310
 892: PUSH
 893: LD_INT 0
 895: EQUAL
 896: IFFALSE 1058
// begin uc_side = 3 ;
 898: LD_ADDR_OWVAR 20
 902: PUSH
 903: LD_INT 3
 905: ST_TO_ADDR
// uc_nation = 3 ;
 906: LD_ADDR_OWVAR 21
 910: PUSH
 911: LD_INT 3
 913: ST_TO_ADDR
// hc_gallery =  ;
 914: LD_ADDR_OWVAR 33
 918: PUSH
 919: LD_STRING 
 921: ST_TO_ADDR
// hc_name =  ;
 922: LD_ADDR_OWVAR 26
 926: PUSH
 927: LD_STRING 
 929: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
 930: LD_ADDR_OWVAR 29
 934: PUSH
 935: LD_INT 9
 937: PPUSH
 938: LD_INT 11
 940: PPUSH
 941: CALL_OW 12
 945: PUSH
 946: LD_INT 10
 948: PPUSH
 949: LD_INT 12
 951: PPUSH
 952: CALL_OW 12
 956: PUSH
 957: EMPTY
 958: LIST
 959: LIST
 960: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
 961: LD_ADDR_OWVAR 31
 965: PUSH
 966: LD_EXP 4
 970: PUSH
 971: LD_INT 0
 973: PPUSH
 974: LD_INT 5
 976: PPUSH
 977: CALL_OW 12
 981: PUSH
 982: LD_INT 0
 984: PPUSH
 985: LD_INT 5
 987: PPUSH
 988: CALL_OW 12
 992: PUSH
 993: LD_INT 0
 995: PPUSH
 996: LD_INT 5
 998: PPUSH
 999: CALL_OW 12
1003: PUSH
1004: EMPTY
1005: LIST
1006: LIST
1007: LIST
1008: LIST
1009: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1010: LD_ADDR_OWVAR 27
1014: PUSH
1015: LD_INT 1
1017: PPUSH
1018: LD_INT 2
1020: PPUSH
1021: CALL_OW 12
1025: ST_TO_ADDR
// hc_class = 1 ;
1026: LD_ADDR_OWVAR 28
1030: PUSH
1031: LD_INT 1
1033: ST_TO_ADDR
// un := CreateHuman ;
1034: LD_ADDR_VAR 0 2
1038: PUSH
1039: CALL_OW 44
1043: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
1044: LD_VAR 0 2
1048: PPUSH
1049: LD_EXP 2
1053: PPUSH
1054: CALL_OW 52
// end ; end ;
1058: GO 880
1060: POP
1061: POP
// for i in depotRU1 do
1062: LD_ADDR_EXP 2
1066: PUSH
1067: LD_INT 112
1069: PUSH
1070: FOR_IN
1071: IFFALSE 1282
// begin l = 0 ;
1073: LD_ADDR_EXP 3
1077: PUSH
1078: LD_INT 0
1080: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1081: LD_EXP 2
1085: PPUSH
1086: CALL_OW 310
1090: PUSH
1091: LD_INT 0
1093: EQUAL
1094: IFFALSE 1280
// begin repeat uc_side = 3 ;
1096: LD_ADDR_OWVAR 20
1100: PUSH
1101: LD_INT 3
1103: ST_TO_ADDR
// uc_nation = 3 ;
1104: LD_ADDR_OWVAR 21
1108: PUSH
1109: LD_INT 3
1111: ST_TO_ADDR
// hc_gallery =  ;
1112: LD_ADDR_OWVAR 33
1116: PUSH
1117: LD_STRING 
1119: ST_TO_ADDR
// hc_name =  ;
1120: LD_ADDR_OWVAR 26
1124: PUSH
1125: LD_STRING 
1127: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1128: LD_ADDR_OWVAR 29
1132: PUSH
1133: LD_INT 9
1135: PPUSH
1136: LD_INT 11
1138: PPUSH
1139: CALL_OW 12
1143: PUSH
1144: LD_INT 10
1146: PPUSH
1147: LD_INT 12
1149: PPUSH
1150: CALL_OW 12
1154: PUSH
1155: EMPTY
1156: LIST
1157: LIST
1158: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , levelEng , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
1159: LD_ADDR_OWVAR 31
1163: PUSH
1164: LD_INT 0
1166: PPUSH
1167: LD_INT 5
1169: PPUSH
1170: CALL_OW 12
1174: PUSH
1175: LD_EXP 6
1179: PUSH
1180: LD_INT 0
1182: PPUSH
1183: LD_INT 5
1185: PPUSH
1186: CALL_OW 12
1190: PUSH
1191: LD_INT 0
1193: PPUSH
1194: LD_INT 5
1196: PPUSH
1197: CALL_OW 12
1201: PUSH
1202: EMPTY
1203: LIST
1204: LIST
1205: LIST
1206: LIST
1207: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1208: LD_ADDR_OWVAR 27
1212: PUSH
1213: LD_INT 1
1215: PPUSH
1216: LD_INT 2
1218: PPUSH
1219: CALL_OW 12
1223: ST_TO_ADDR
// hc_class = 2 ;
1224: LD_ADDR_OWVAR 28
1228: PUSH
1229: LD_INT 2
1231: ST_TO_ADDR
// un := CreateHuman ;
1232: LD_ADDR_VAR 0 2
1236: PUSH
1237: CALL_OW 44
1241: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
1242: LD_VAR 0 2
1246: PPUSH
1247: LD_EXP 2
1251: PPUSH
1252: CALL_OW 52
// l = l + 1 ;
1256: LD_ADDR_EXP 3
1260: PUSH
1261: LD_EXP 3
1265: PUSH
1266: LD_INT 1
1268: PLUS
1269: ST_TO_ADDR
// until l = 4 ;
1270: LD_EXP 3
1274: PUSH
1275: LD_INT 4
1277: EQUAL
1278: IFFALSE 1096
// end ; end ;
1280: GO 1070
1282: POP
1283: POP
// for i in armouryRU1 do
1284: LD_ADDR_EXP 2
1288: PUSH
1289: LD_INT 167
1291: PUSH
1292: FOR_IN
1293: IFFALSE 1521
// begin l = 0 ;
1295: LD_ADDR_EXP 3
1299: PUSH
1300: LD_INT 0
1302: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1303: LD_EXP 2
1307: PPUSH
1308: CALL_OW 310
1312: PUSH
1313: LD_INT 0
1315: EQUAL
1316: IFFALSE 1519
// begin repeat uc_side = 3 ;
1318: LD_ADDR_OWVAR 20
1322: PUSH
1323: LD_INT 3
1325: ST_TO_ADDR
// uc_nation = 3 ;
1326: LD_ADDR_OWVAR 21
1330: PUSH
1331: LD_INT 3
1333: ST_TO_ADDR
// hc_gallery =  ;
1334: LD_ADDR_OWVAR 33
1338: PUSH
1339: LD_STRING 
1341: ST_TO_ADDR
// hc_name =  ;
1342: LD_ADDR_OWVAR 26
1346: PUSH
1347: LD_STRING 
1349: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1350: LD_ADDR_OWVAR 29
1354: PUSH
1355: LD_INT 9
1357: PPUSH
1358: LD_INT 11
1360: PPUSH
1361: CALL_OW 12
1365: PUSH
1366: LD_INT 10
1368: PPUSH
1369: LD_INT 12
1371: PPUSH
1372: CALL_OW 12
1376: PUSH
1377: EMPTY
1378: LIST
1379: LIST
1380: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
1381: LD_ADDR_OWVAR 31
1385: PUSH
1386: LD_EXP 4
1390: PUSH
1391: LD_INT 0
1393: PPUSH
1394: LD_INT 5
1396: PPUSH
1397: CALL_OW 12
1401: PUSH
1402: LD_INT 0
1404: PPUSH
1405: LD_INT 5
1407: PPUSH
1408: CALL_OW 12
1412: PUSH
1413: LD_INT 0
1415: PPUSH
1416: LD_INT 5
1418: PPUSH
1419: CALL_OW 12
1423: PUSH
1424: EMPTY
1425: LIST
1426: LIST
1427: LIST
1428: LIST
1429: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1430: LD_ADDR_OWVAR 27
1434: PUSH
1435: LD_INT 1
1437: PPUSH
1438: LD_INT 2
1440: PPUSH
1441: CALL_OW 12
1445: ST_TO_ADDR
// hc_class = 1 ;
1446: LD_ADDR_OWVAR 28
1450: PUSH
1451: LD_INT 1
1453: ST_TO_ADDR
// un := CreateHuman ;
1454: LD_ADDR_VAR 0 2
1458: PUSH
1459: CALL_OW 44
1463: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
1464: LD_VAR 0 2
1468: PPUSH
1469: LD_EXP 2
1473: PPUSH
1474: CALL_OW 52
// l = l + 1 ;
1478: LD_ADDR_EXP 3
1482: PUSH
1483: LD_EXP 3
1487: PUSH
1488: LD_INT 1
1490: PLUS
1491: ST_TO_ADDR
// until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
1492: LD_EXP 3
1496: PUSH
1497: LD_INT 3
1499: PUSH
1500: LD_INT 4
1502: PUSH
1503: LD_INT 4
1505: PUSH
1506: EMPTY
1507: LIST
1508: LIST
1509: LIST
1510: PUSH
1511: LD_OWVAR 67
1515: ARRAY
1516: EQUAL
1517: IFFALSE 1318
// end ; end ;
1519: GO 1292
1521: POP
1522: POP
// for i in armouryRU2 do
1523: LD_ADDR_EXP 2
1527: PUSH
1528: LD_INT 174
1530: PUSH
1531: FOR_IN
1532: IFFALSE 1760
// begin l = 0 ;
1534: LD_ADDR_EXP 3
1538: PUSH
1539: LD_INT 0
1541: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1542: LD_EXP 2
1546: PPUSH
1547: CALL_OW 310
1551: PUSH
1552: LD_INT 0
1554: EQUAL
1555: IFFALSE 1758
// begin repeat uc_side = 3 ;
1557: LD_ADDR_OWVAR 20
1561: PUSH
1562: LD_INT 3
1564: ST_TO_ADDR
// uc_nation = 3 ;
1565: LD_ADDR_OWVAR 21
1569: PUSH
1570: LD_INT 3
1572: ST_TO_ADDR
// hc_gallery =  ;
1573: LD_ADDR_OWVAR 33
1577: PUSH
1578: LD_STRING 
1580: ST_TO_ADDR
// hc_name =  ;
1581: LD_ADDR_OWVAR 26
1585: PUSH
1586: LD_STRING 
1588: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1589: LD_ADDR_OWVAR 29
1593: PUSH
1594: LD_INT 9
1596: PPUSH
1597: LD_INT 11
1599: PPUSH
1600: CALL_OW 12
1604: PUSH
1605: LD_INT 10
1607: PPUSH
1608: LD_INT 12
1610: PPUSH
1611: CALL_OW 12
1615: PUSH
1616: EMPTY
1617: LIST
1618: LIST
1619: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
1620: LD_ADDR_OWVAR 31
1624: PUSH
1625: LD_EXP 4
1629: PUSH
1630: LD_INT 0
1632: PPUSH
1633: LD_INT 5
1635: PPUSH
1636: CALL_OW 12
1640: PUSH
1641: LD_INT 0
1643: PPUSH
1644: LD_INT 5
1646: PPUSH
1647: CALL_OW 12
1651: PUSH
1652: LD_INT 0
1654: PPUSH
1655: LD_INT 5
1657: PPUSH
1658: CALL_OW 12
1662: PUSH
1663: EMPTY
1664: LIST
1665: LIST
1666: LIST
1667: LIST
1668: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1669: LD_ADDR_OWVAR 27
1673: PUSH
1674: LD_INT 1
1676: PPUSH
1677: LD_INT 2
1679: PPUSH
1680: CALL_OW 12
1684: ST_TO_ADDR
// hc_class = 1 ;
1685: LD_ADDR_OWVAR 28
1689: PUSH
1690: LD_INT 1
1692: ST_TO_ADDR
// un := CreateHuman ;
1693: LD_ADDR_VAR 0 2
1697: PUSH
1698: CALL_OW 44
1702: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
1703: LD_VAR 0 2
1707: PPUSH
1708: LD_EXP 2
1712: PPUSH
1713: CALL_OW 52
// l = l + 1 ;
1717: LD_ADDR_EXP 3
1721: PUSH
1722: LD_EXP 3
1726: PUSH
1727: LD_INT 1
1729: PLUS
1730: ST_TO_ADDR
// until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
1731: LD_EXP 3
1735: PUSH
1736: LD_INT 3
1738: PUSH
1739: LD_INT 4
1741: PUSH
1742: LD_INT 4
1744: PUSH
1745: EMPTY
1746: LIST
1747: LIST
1748: LIST
1749: PUSH
1750: LD_OWVAR 67
1754: ARRAY
1755: EQUAL
1756: IFFALSE 1557
// end ; end ;
1758: GO 1531
1760: POP
1761: POP
// end ;
1762: LD_VAR 0 1
1766: RET
// export function RUSLane2 ; var un ; begin
1767: LD_INT 0
1769: PPUSH
1770: PPUSH
// levelS = [ 6 , 7 , 8 ] [ Difficulty ] ;
1771: LD_ADDR_EXP 4
1775: PUSH
1776: LD_INT 6
1778: PUSH
1779: LD_INT 7
1781: PUSH
1782: LD_INT 8
1784: PUSH
1785: EMPTY
1786: LIST
1787: LIST
1788: LIST
1789: PUSH
1790: LD_OWVAR 67
1794: ARRAY
1795: ST_TO_ADDR
// leveleng = [ 6 , 7 , 8 ] [ Difficulty ] ;
1796: LD_ADDR_EXP 6
1800: PUSH
1801: LD_INT 6
1803: PUSH
1804: LD_INT 7
1806: PUSH
1807: LD_INT 8
1809: PUSH
1810: EMPTY
1811: LIST
1812: LIST
1813: LIST
1814: PUSH
1815: LD_OWVAR 67
1819: ARRAY
1820: ST_TO_ADDR
// for i in armouryRU3 do
1821: LD_ADDR_EXP 2
1825: PUSH
1826: LD_INT 181
1828: PUSH
1829: FOR_IN
1830: IFFALSE 2058
// begin l = 0 ;
1832: LD_ADDR_EXP 3
1836: PUSH
1837: LD_INT 0
1839: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
1840: LD_EXP 2
1844: PPUSH
1845: CALL_OW 310
1849: PUSH
1850: LD_INT 0
1852: EQUAL
1853: IFFALSE 2056
// begin repeat uc_side = 3 ;
1855: LD_ADDR_OWVAR 20
1859: PUSH
1860: LD_INT 3
1862: ST_TO_ADDR
// uc_nation = 3 ;
1863: LD_ADDR_OWVAR 21
1867: PUSH
1868: LD_INT 3
1870: ST_TO_ADDR
// hc_gallery =  ;
1871: LD_ADDR_OWVAR 33
1875: PUSH
1876: LD_STRING 
1878: ST_TO_ADDR
// hc_name =  ;
1879: LD_ADDR_OWVAR 26
1883: PUSH
1884: LD_STRING 
1886: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1887: LD_ADDR_OWVAR 29
1891: PUSH
1892: LD_INT 9
1894: PPUSH
1895: LD_INT 11
1897: PPUSH
1898: CALL_OW 12
1902: PUSH
1903: LD_INT 10
1905: PPUSH
1906: LD_INT 12
1908: PPUSH
1909: CALL_OW 12
1913: PUSH
1914: EMPTY
1915: LIST
1916: LIST
1917: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
1918: LD_ADDR_OWVAR 31
1922: PUSH
1923: LD_EXP 4
1927: PUSH
1928: LD_INT 0
1930: PPUSH
1931: LD_INT 5
1933: PPUSH
1934: CALL_OW 12
1938: PUSH
1939: LD_INT 0
1941: PPUSH
1942: LD_INT 5
1944: PPUSH
1945: CALL_OW 12
1949: PUSH
1950: LD_INT 0
1952: PPUSH
1953: LD_INT 5
1955: PPUSH
1956: CALL_OW 12
1960: PUSH
1961: EMPTY
1962: LIST
1963: LIST
1964: LIST
1965: LIST
1966: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1967: LD_ADDR_OWVAR 27
1971: PUSH
1972: LD_INT 1
1974: PPUSH
1975: LD_INT 2
1977: PPUSH
1978: CALL_OW 12
1982: ST_TO_ADDR
// hc_class = 1 ;
1983: LD_ADDR_OWVAR 28
1987: PUSH
1988: LD_INT 1
1990: ST_TO_ADDR
// un := CreateHuman ;
1991: LD_ADDR_VAR 0 2
1995: PUSH
1996: CALL_OW 44
2000: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
2001: LD_VAR 0 2
2005: PPUSH
2006: LD_EXP 2
2010: PPUSH
2011: CALL_OW 52
// l = l + 1 ;
2015: LD_ADDR_EXP 3
2019: PUSH
2020: LD_EXP 3
2024: PUSH
2025: LD_INT 1
2027: PLUS
2028: ST_TO_ADDR
// until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2029: LD_EXP 3
2033: PUSH
2034: LD_INT 3
2036: PUSH
2037: LD_INT 4
2039: PUSH
2040: LD_INT 4
2042: PUSH
2043: EMPTY
2044: LIST
2045: LIST
2046: LIST
2047: PUSH
2048: LD_OWVAR 67
2052: ARRAY
2053: EQUAL
2054: IFFALSE 1855
// end ; end ;
2056: GO 1829
2058: POP
2059: POP
// for i in armouryRU4 do
2060: LD_ADDR_EXP 2
2064: PUSH
2065: LD_INT 258
2067: PUSH
2068: FOR_IN
2069: IFFALSE 2297
// begin l = 0 ;
2071: LD_ADDR_EXP 3
2075: PUSH
2076: LD_INT 0
2078: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2079: LD_EXP 2
2083: PPUSH
2084: CALL_OW 310
2088: PUSH
2089: LD_INT 0
2091: EQUAL
2092: IFFALSE 2295
// begin repeat uc_side = 6 ;
2094: LD_ADDR_OWVAR 20
2098: PUSH
2099: LD_INT 6
2101: ST_TO_ADDR
// uc_nation = 3 ;
2102: LD_ADDR_OWVAR 21
2106: PUSH
2107: LD_INT 3
2109: ST_TO_ADDR
// hc_gallery =  ;
2110: LD_ADDR_OWVAR 33
2114: PUSH
2115: LD_STRING 
2117: ST_TO_ADDR
// hc_name =  ;
2118: LD_ADDR_OWVAR 26
2122: PUSH
2123: LD_STRING 
2125: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2126: LD_ADDR_OWVAR 29
2130: PUSH
2131: LD_INT 9
2133: PPUSH
2134: LD_INT 11
2136: PPUSH
2137: CALL_OW 12
2141: PUSH
2142: LD_INT 10
2144: PPUSH
2145: LD_INT 12
2147: PPUSH
2148: CALL_OW 12
2152: PUSH
2153: EMPTY
2154: LIST
2155: LIST
2156: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
2157: LD_ADDR_OWVAR 31
2161: PUSH
2162: LD_EXP 4
2166: PUSH
2167: LD_INT 0
2169: PPUSH
2170: LD_INT 5
2172: PPUSH
2173: CALL_OW 12
2177: PUSH
2178: LD_INT 0
2180: PPUSH
2181: LD_INT 5
2183: PPUSH
2184: CALL_OW 12
2188: PUSH
2189: LD_INT 0
2191: PPUSH
2192: LD_INT 5
2194: PPUSH
2195: CALL_OW 12
2199: PUSH
2200: EMPTY
2201: LIST
2202: LIST
2203: LIST
2204: LIST
2205: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2206: LD_ADDR_OWVAR 27
2210: PUSH
2211: LD_INT 1
2213: PPUSH
2214: LD_INT 2
2216: PPUSH
2217: CALL_OW 12
2221: ST_TO_ADDR
// hc_class = 1 ;
2222: LD_ADDR_OWVAR 28
2226: PUSH
2227: LD_INT 1
2229: ST_TO_ADDR
// un := CreateHuman ;
2230: LD_ADDR_VAR 0 2
2234: PUSH
2235: CALL_OW 44
2239: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
2240: LD_VAR 0 2
2244: PPUSH
2245: LD_EXP 2
2249: PPUSH
2250: CALL_OW 52
// l = l + 1 ;
2254: LD_ADDR_EXP 3
2258: PUSH
2259: LD_EXP 3
2263: PUSH
2264: LD_INT 1
2266: PLUS
2267: ST_TO_ADDR
// until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2268: LD_EXP 3
2272: PUSH
2273: LD_INT 3
2275: PUSH
2276: LD_INT 4
2278: PUSH
2279: LD_INT 4
2281: PUSH
2282: EMPTY
2283: LIST
2284: LIST
2285: LIST
2286: PUSH
2287: LD_OWVAR 67
2291: ARRAY
2292: EQUAL
2293: IFFALSE 2094
// end ; end ;
2295: GO 2068
2297: POP
2298: POP
// for i in armouryRU5 do
2299: LD_ADDR_EXP 2
2303: PUSH
2304: LD_INT 246
2306: PUSH
2307: FOR_IN
2308: IFFALSE 2536
// begin l = 0 ;
2310: LD_ADDR_EXP 3
2314: PUSH
2315: LD_INT 0
2317: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2318: LD_EXP 2
2322: PPUSH
2323: CALL_OW 310
2327: PUSH
2328: LD_INT 0
2330: EQUAL
2331: IFFALSE 2534
// begin repeat uc_side = 6 ;
2333: LD_ADDR_OWVAR 20
2337: PUSH
2338: LD_INT 6
2340: ST_TO_ADDR
// uc_nation = 3 ;
2341: LD_ADDR_OWVAR 21
2345: PUSH
2346: LD_INT 3
2348: ST_TO_ADDR
// hc_gallery =  ;
2349: LD_ADDR_OWVAR 33
2353: PUSH
2354: LD_STRING 
2356: ST_TO_ADDR
// hc_name =  ;
2357: LD_ADDR_OWVAR 26
2361: PUSH
2362: LD_STRING 
2364: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2365: LD_ADDR_OWVAR 29
2369: PUSH
2370: LD_INT 9
2372: PPUSH
2373: LD_INT 11
2375: PPUSH
2376: CALL_OW 12
2380: PUSH
2381: LD_INT 10
2383: PPUSH
2384: LD_INT 12
2386: PPUSH
2387: CALL_OW 12
2391: PUSH
2392: EMPTY
2393: LIST
2394: LIST
2395: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
2396: LD_ADDR_OWVAR 31
2400: PUSH
2401: LD_EXP 4
2405: PUSH
2406: LD_INT 0
2408: PPUSH
2409: LD_INT 5
2411: PPUSH
2412: CALL_OW 12
2416: PUSH
2417: LD_INT 0
2419: PPUSH
2420: LD_INT 5
2422: PPUSH
2423: CALL_OW 12
2427: PUSH
2428: LD_INT 0
2430: PPUSH
2431: LD_INT 5
2433: PPUSH
2434: CALL_OW 12
2438: PUSH
2439: EMPTY
2440: LIST
2441: LIST
2442: LIST
2443: LIST
2444: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2445: LD_ADDR_OWVAR 27
2449: PUSH
2450: LD_INT 1
2452: PPUSH
2453: LD_INT 2
2455: PPUSH
2456: CALL_OW 12
2460: ST_TO_ADDR
// hc_class = 1 ;
2461: LD_ADDR_OWVAR 28
2465: PUSH
2466: LD_INT 1
2468: ST_TO_ADDR
// un := CreateHuman ;
2469: LD_ADDR_VAR 0 2
2473: PUSH
2474: CALL_OW 44
2478: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
2479: LD_VAR 0 2
2483: PPUSH
2484: LD_EXP 2
2488: PPUSH
2489: CALL_OW 52
// l = l + 1 ;
2493: LD_ADDR_EXP 3
2497: PUSH
2498: LD_EXP 3
2502: PUSH
2503: LD_INT 1
2505: PLUS
2506: ST_TO_ADDR
// until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
2507: LD_EXP 3
2511: PUSH
2512: LD_INT 3
2514: PUSH
2515: LD_INT 4
2517: PUSH
2518: LD_INT 4
2520: PUSH
2521: EMPTY
2522: LIST
2523: LIST
2524: LIST
2525: PUSH
2526: LD_OWVAR 67
2530: ARRAY
2531: EQUAL
2532: IFFALSE 2333
// end ; end ;
2534: GO 2307
2536: POP
2537: POP
// Ru2_turrets := FilterUnitsInArea ( RuLane2 , [ [ f_side , 6 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 6 ] , [ f_btype , b_breastwork ] ] ) ;
2538: LD_ADDR_EXP 8
2542: PUSH
2543: LD_INT 4
2545: PPUSH
2546: LD_INT 22
2548: PUSH
2549: LD_INT 6
2551: PUSH
2552: EMPTY
2553: LIST
2554: LIST
2555: PUSH
2556: LD_INT 30
2558: PUSH
2559: LD_INT 32
2561: PUSH
2562: EMPTY
2563: LIST
2564: LIST
2565: PUSH
2566: EMPTY
2567: LIST
2568: LIST
2569: PPUSH
2570: CALL_OW 70
2574: PUSH
2575: LD_INT 22
2577: PUSH
2578: LD_INT 6
2580: PUSH
2581: EMPTY
2582: LIST
2583: LIST
2584: PUSH
2585: LD_INT 30
2587: PUSH
2588: LD_INT 31
2590: PUSH
2591: EMPTY
2592: LIST
2593: LIST
2594: PUSH
2595: EMPTY
2596: LIST
2597: LIST
2598: PPUSH
2599: CALL_OW 69
2603: ADD
2604: ST_TO_ADDR
// for i in Ru2_turrets do
2605: LD_ADDR_EXP 2
2609: PUSH
2610: LD_EXP 8
2614: PUSH
2615: FOR_IN
2616: IFFALSE 2795
// begin if IsInUnit ( i ) = 0 then
2618: LD_EXP 2
2622: PPUSH
2623: CALL_OW 310
2627: PUSH
2628: LD_INT 0
2630: EQUAL
2631: IFFALSE 2793
// begin uc_side = 6 ;
2633: LD_ADDR_OWVAR 20
2637: PUSH
2638: LD_INT 6
2640: ST_TO_ADDR
// uc_nation = 3 ;
2641: LD_ADDR_OWVAR 21
2645: PUSH
2646: LD_INT 3
2648: ST_TO_ADDR
// hc_gallery =  ;
2649: LD_ADDR_OWVAR 33
2653: PUSH
2654: LD_STRING 
2656: ST_TO_ADDR
// hc_name =  ;
2657: LD_ADDR_OWVAR 26
2661: PUSH
2662: LD_STRING 
2664: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2665: LD_ADDR_OWVAR 29
2669: PUSH
2670: LD_INT 9
2672: PPUSH
2673: LD_INT 11
2675: PPUSH
2676: CALL_OW 12
2680: PUSH
2681: LD_INT 10
2683: PPUSH
2684: LD_INT 12
2686: PPUSH
2687: CALL_OW 12
2691: PUSH
2692: EMPTY
2693: LIST
2694: LIST
2695: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
2696: LD_ADDR_OWVAR 31
2700: PUSH
2701: LD_EXP 4
2705: PUSH
2706: LD_INT 0
2708: PPUSH
2709: LD_INT 5
2711: PPUSH
2712: CALL_OW 12
2716: PUSH
2717: LD_INT 0
2719: PPUSH
2720: LD_INT 5
2722: PPUSH
2723: CALL_OW 12
2727: PUSH
2728: LD_INT 0
2730: PPUSH
2731: LD_INT 5
2733: PPUSH
2734: CALL_OW 12
2738: PUSH
2739: EMPTY
2740: LIST
2741: LIST
2742: LIST
2743: LIST
2744: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2745: LD_ADDR_OWVAR 27
2749: PUSH
2750: LD_INT 1
2752: PPUSH
2753: LD_INT 2
2755: PPUSH
2756: CALL_OW 12
2760: ST_TO_ADDR
// hc_class = 1 ;
2761: LD_ADDR_OWVAR 28
2765: PUSH
2766: LD_INT 1
2768: ST_TO_ADDR
// un := CreateHuman ;
2769: LD_ADDR_VAR 0 2
2773: PUSH
2774: CALL_OW 44
2778: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
2779: LD_VAR 0 2
2783: PPUSH
2784: LD_EXP 2
2788: PPUSH
2789: CALL_OW 52
// end ; end ;
2793: GO 2615
2795: POP
2796: POP
// for i in depotRU2 do
2797: LD_ADDR_EXP 2
2801: PUSH
2802: LD_INT 223
2804: PUSH
2805: FOR_IN
2806: IFFALSE 3017
// begin l = 0 ;
2808: LD_ADDR_EXP 3
2812: PUSH
2813: LD_INT 0
2815: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2816: LD_EXP 2
2820: PPUSH
2821: CALL_OW 310
2825: PUSH
2826: LD_INT 0
2828: EQUAL
2829: IFFALSE 3015
// begin repeat uc_side = 6 ;
2831: LD_ADDR_OWVAR 20
2835: PUSH
2836: LD_INT 6
2838: ST_TO_ADDR
// uc_nation = 3 ;
2839: LD_ADDR_OWVAR 21
2843: PUSH
2844: LD_INT 3
2846: ST_TO_ADDR
// hc_gallery =  ;
2847: LD_ADDR_OWVAR 33
2851: PUSH
2852: LD_STRING 
2854: ST_TO_ADDR
// hc_name =  ;
2855: LD_ADDR_OWVAR 26
2859: PUSH
2860: LD_STRING 
2862: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2863: LD_ADDR_OWVAR 29
2867: PUSH
2868: LD_INT 9
2870: PPUSH
2871: LD_INT 11
2873: PPUSH
2874: CALL_OW 12
2878: PUSH
2879: LD_INT 10
2881: PPUSH
2882: LD_INT 12
2884: PPUSH
2885: CALL_OW 12
2889: PUSH
2890: EMPTY
2891: LIST
2892: LIST
2893: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , levelEng , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
2894: LD_ADDR_OWVAR 31
2898: PUSH
2899: LD_INT 0
2901: PPUSH
2902: LD_INT 5
2904: PPUSH
2905: CALL_OW 12
2909: PUSH
2910: LD_EXP 6
2914: PUSH
2915: LD_INT 0
2917: PPUSH
2918: LD_INT 5
2920: PPUSH
2921: CALL_OW 12
2925: PUSH
2926: LD_INT 0
2928: PPUSH
2929: LD_INT 5
2931: PPUSH
2932: CALL_OW 12
2936: PUSH
2937: EMPTY
2938: LIST
2939: LIST
2940: LIST
2941: LIST
2942: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2943: LD_ADDR_OWVAR 27
2947: PUSH
2948: LD_INT 1
2950: PPUSH
2951: LD_INT 2
2953: PPUSH
2954: CALL_OW 12
2958: ST_TO_ADDR
// hc_class = 2 ;
2959: LD_ADDR_OWVAR 28
2963: PUSH
2964: LD_INT 2
2966: ST_TO_ADDR
// un := CreateHuman ;
2967: LD_ADDR_VAR 0 2
2971: PUSH
2972: CALL_OW 44
2976: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
2977: LD_VAR 0 2
2981: PPUSH
2982: LD_EXP 2
2986: PPUSH
2987: CALL_OW 52
// l = l + 1 ;
2991: LD_ADDR_EXP 3
2995: PUSH
2996: LD_EXP 3
3000: PUSH
3001: LD_INT 1
3003: PLUS
3004: ST_TO_ADDR
// until l = 4 ;
3005: LD_EXP 3
3009: PUSH
3010: LD_INT 4
3012: EQUAL
3013: IFFALSE 2831
// end ; end ;
3015: GO 2805
3017: POP
3018: POP
// end ;
3019: LD_VAR 0 1
3023: RET
// export function RUSLane3 ; var un ; begin
3024: LD_INT 0
3026: PPUSH
3027: PPUSH
// Ru3_turrets := FilterUnitsInArea ( RuLane3 , [ [ f_side , 3 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_breastwork ] ] ) ;
3028: LD_ADDR_EXP 9
3032: PUSH
3033: LD_INT 5
3035: PPUSH
3036: LD_INT 22
3038: PUSH
3039: LD_INT 3
3041: PUSH
3042: EMPTY
3043: LIST
3044: LIST
3045: PUSH
3046: LD_INT 30
3048: PUSH
3049: LD_INT 32
3051: PUSH
3052: EMPTY
3053: LIST
3054: LIST
3055: PUSH
3056: EMPTY
3057: LIST
3058: LIST
3059: PPUSH
3060: CALL_OW 70
3064: PUSH
3065: LD_INT 22
3067: PUSH
3068: LD_INT 3
3070: PUSH
3071: EMPTY
3072: LIST
3073: LIST
3074: PUSH
3075: LD_INT 30
3077: PUSH
3078: LD_INT 31
3080: PUSH
3081: EMPTY
3082: LIST
3083: LIST
3084: PUSH
3085: EMPTY
3086: LIST
3087: LIST
3088: PPUSH
3089: CALL_OW 69
3093: ADD
3094: ST_TO_ADDR
// levelS = [ 6 , 7 , 8 ] [ Difficulty ] ;
3095: LD_ADDR_EXP 4
3099: PUSH
3100: LD_INT 6
3102: PUSH
3103: LD_INT 7
3105: PUSH
3106: LD_INT 8
3108: PUSH
3109: EMPTY
3110: LIST
3111: LIST
3112: LIST
3113: PUSH
3114: LD_OWVAR 67
3118: ARRAY
3119: ST_TO_ADDR
// levelEng = [ 6 , 7 , 8 ] [ Difficulty ] ;
3120: LD_ADDR_EXP 6
3124: PUSH
3125: LD_INT 6
3127: PUSH
3128: LD_INT 7
3130: PUSH
3131: LD_INT 8
3133: PUSH
3134: EMPTY
3135: LIST
3136: LIST
3137: LIST
3138: PUSH
3139: LD_OWVAR 67
3143: ARRAY
3144: ST_TO_ADDR
// for i in Ru3_turrets do
3145: LD_ADDR_EXP 2
3149: PUSH
3150: LD_EXP 9
3154: PUSH
3155: FOR_IN
3156: IFFALSE 3335
// begin if IsInUnit ( i ) = 0 then
3158: LD_EXP 2
3162: PPUSH
3163: CALL_OW 310
3167: PUSH
3168: LD_INT 0
3170: EQUAL
3171: IFFALSE 3333
// begin uc_side = 3 ;
3173: LD_ADDR_OWVAR 20
3177: PUSH
3178: LD_INT 3
3180: ST_TO_ADDR
// uc_nation = 3 ;
3181: LD_ADDR_OWVAR 21
3185: PUSH
3186: LD_INT 3
3188: ST_TO_ADDR
// hc_gallery =  ;
3189: LD_ADDR_OWVAR 33
3193: PUSH
3194: LD_STRING 
3196: ST_TO_ADDR
// hc_name =  ;
3197: LD_ADDR_OWVAR 26
3201: PUSH
3202: LD_STRING 
3204: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3205: LD_ADDR_OWVAR 29
3209: PUSH
3210: LD_INT 9
3212: PPUSH
3213: LD_INT 11
3215: PPUSH
3216: CALL_OW 12
3220: PUSH
3221: LD_INT 10
3223: PPUSH
3224: LD_INT 12
3226: PPUSH
3227: CALL_OW 12
3231: PUSH
3232: EMPTY
3233: LIST
3234: LIST
3235: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
3236: LD_ADDR_OWVAR 31
3240: PUSH
3241: LD_EXP 4
3245: PUSH
3246: LD_INT 0
3248: PPUSH
3249: LD_INT 5
3251: PPUSH
3252: CALL_OW 12
3256: PUSH
3257: LD_INT 0
3259: PPUSH
3260: LD_INT 5
3262: PPUSH
3263: CALL_OW 12
3267: PUSH
3268: LD_INT 0
3270: PPUSH
3271: LD_INT 5
3273: PPUSH
3274: CALL_OW 12
3278: PUSH
3279: EMPTY
3280: LIST
3281: LIST
3282: LIST
3283: LIST
3284: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3285: LD_ADDR_OWVAR 27
3289: PUSH
3290: LD_INT 1
3292: PPUSH
3293: LD_INT 2
3295: PPUSH
3296: CALL_OW 12
3300: ST_TO_ADDR
// hc_class = 1 ;
3301: LD_ADDR_OWVAR 28
3305: PUSH
3306: LD_INT 1
3308: ST_TO_ADDR
// un := CreateHuman ;
3309: LD_ADDR_VAR 0 2
3313: PUSH
3314: CALL_OW 44
3318: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
3319: LD_VAR 0 2
3323: PPUSH
3324: LD_EXP 2
3328: PPUSH
3329: CALL_OW 52
// end ; end ;
3333: GO 3155
3335: POP
3336: POP
// for i in depotRU3 do
3337: LD_ADDR_EXP 2
3341: PUSH
3342: LD_INT 305
3344: PUSH
3345: FOR_IN
3346: IFFALSE 3557
// begin l = 0 ;
3348: LD_ADDR_EXP 3
3352: PUSH
3353: LD_INT 0
3355: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3356: LD_EXP 2
3360: PPUSH
3361: CALL_OW 310
3365: PUSH
3366: LD_INT 0
3368: EQUAL
3369: IFFALSE 3555
// begin repeat uc_side = 3 ;
3371: LD_ADDR_OWVAR 20
3375: PUSH
3376: LD_INT 3
3378: ST_TO_ADDR
// uc_nation = 3 ;
3379: LD_ADDR_OWVAR 21
3383: PUSH
3384: LD_INT 3
3386: ST_TO_ADDR
// hc_gallery =  ;
3387: LD_ADDR_OWVAR 33
3391: PUSH
3392: LD_STRING 
3394: ST_TO_ADDR
// hc_name =  ;
3395: LD_ADDR_OWVAR 26
3399: PUSH
3400: LD_STRING 
3402: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3403: LD_ADDR_OWVAR 29
3407: PUSH
3408: LD_INT 9
3410: PPUSH
3411: LD_INT 11
3413: PPUSH
3414: CALL_OW 12
3418: PUSH
3419: LD_INT 10
3421: PPUSH
3422: LD_INT 12
3424: PPUSH
3425: CALL_OW 12
3429: PUSH
3430: EMPTY
3431: LIST
3432: LIST
3433: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , levelEng , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
3434: LD_ADDR_OWVAR 31
3438: PUSH
3439: LD_INT 0
3441: PPUSH
3442: LD_INT 5
3444: PPUSH
3445: CALL_OW 12
3449: PUSH
3450: LD_EXP 6
3454: PUSH
3455: LD_INT 0
3457: PPUSH
3458: LD_INT 5
3460: PPUSH
3461: CALL_OW 12
3465: PUSH
3466: LD_INT 0
3468: PPUSH
3469: LD_INT 5
3471: PPUSH
3472: CALL_OW 12
3476: PUSH
3477: EMPTY
3478: LIST
3479: LIST
3480: LIST
3481: LIST
3482: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3483: LD_ADDR_OWVAR 27
3487: PUSH
3488: LD_INT 1
3490: PPUSH
3491: LD_INT 2
3493: PPUSH
3494: CALL_OW 12
3498: ST_TO_ADDR
// hc_class = 2 ;
3499: LD_ADDR_OWVAR 28
3503: PUSH
3504: LD_INT 2
3506: ST_TO_ADDR
// un := CreateHuman ;
3507: LD_ADDR_VAR 0 2
3511: PUSH
3512: CALL_OW 44
3516: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
3517: LD_VAR 0 2
3521: PPUSH
3522: LD_EXP 2
3526: PPUSH
3527: CALL_OW 52
// l = l + 1 ;
3531: LD_ADDR_EXP 3
3535: PUSH
3536: LD_EXP 3
3540: PUSH
3541: LD_INT 1
3543: PLUS
3544: ST_TO_ADDR
// until l = 4 ;
3545: LD_EXP 3
3549: PUSH
3550: LD_INT 4
3552: EQUAL
3553: IFFALSE 3371
// end ; end ;
3555: GO 3345
3557: POP
3558: POP
// for i in armouryRU6 do
3559: LD_ADDR_EXP 2
3563: PUSH
3564: LD_INT 341
3566: PUSH
3567: FOR_IN
3568: IFFALSE 3796
// begin l = 0 ;
3570: LD_ADDR_EXP 3
3574: PUSH
3575: LD_INT 0
3577: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
3578: LD_EXP 2
3582: PPUSH
3583: CALL_OW 310
3587: PUSH
3588: LD_INT 0
3590: EQUAL
3591: IFFALSE 3794
// begin repeat uc_side = 3 ;
3593: LD_ADDR_OWVAR 20
3597: PUSH
3598: LD_INT 3
3600: ST_TO_ADDR
// uc_nation = 3 ;
3601: LD_ADDR_OWVAR 21
3605: PUSH
3606: LD_INT 3
3608: ST_TO_ADDR
// hc_gallery =  ;
3609: LD_ADDR_OWVAR 33
3613: PUSH
3614: LD_STRING 
3616: ST_TO_ADDR
// hc_name =  ;
3617: LD_ADDR_OWVAR 26
3621: PUSH
3622: LD_STRING 
3624: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3625: LD_ADDR_OWVAR 29
3629: PUSH
3630: LD_INT 9
3632: PPUSH
3633: LD_INT 11
3635: PPUSH
3636: CALL_OW 12
3640: PUSH
3641: LD_INT 10
3643: PPUSH
3644: LD_INT 12
3646: PPUSH
3647: CALL_OW 12
3651: PUSH
3652: EMPTY
3653: LIST
3654: LIST
3655: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
3656: LD_ADDR_OWVAR 31
3660: PUSH
3661: LD_EXP 4
3665: PUSH
3666: LD_INT 0
3668: PPUSH
3669: LD_INT 5
3671: PPUSH
3672: CALL_OW 12
3676: PUSH
3677: LD_INT 0
3679: PPUSH
3680: LD_INT 5
3682: PPUSH
3683: CALL_OW 12
3687: PUSH
3688: LD_INT 0
3690: PPUSH
3691: LD_INT 5
3693: PPUSH
3694: CALL_OW 12
3698: PUSH
3699: EMPTY
3700: LIST
3701: LIST
3702: LIST
3703: LIST
3704: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3705: LD_ADDR_OWVAR 27
3709: PUSH
3710: LD_INT 1
3712: PPUSH
3713: LD_INT 2
3715: PPUSH
3716: CALL_OW 12
3720: ST_TO_ADDR
// hc_class = 1 ;
3721: LD_ADDR_OWVAR 28
3725: PUSH
3726: LD_INT 1
3728: ST_TO_ADDR
// un := CreateHuman ;
3729: LD_ADDR_VAR 0 2
3733: PUSH
3734: CALL_OW 44
3738: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
3739: LD_VAR 0 2
3743: PPUSH
3744: LD_EXP 2
3748: PPUSH
3749: CALL_OW 52
// l = l + 1 ;
3753: LD_ADDR_EXP 3
3757: PUSH
3758: LD_EXP 3
3762: PUSH
3763: LD_INT 1
3765: PLUS
3766: ST_TO_ADDR
// until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
3767: LD_EXP 3
3771: PUSH
3772: LD_INT 3
3774: PUSH
3775: LD_INT 4
3777: PUSH
3778: LD_INT 4
3780: PUSH
3781: EMPTY
3782: LIST
3783: LIST
3784: LIST
3785: PUSH
3786: LD_OWVAR 67
3790: ARRAY
3791: EQUAL
3792: IFFALSE 3593
// end ; end ;
3794: GO 3567
3796: POP
3797: POP
// end ;
3798: LD_VAR 0 1
3802: RET
// export function RUSLane4 ; var un ; begin
3803: LD_INT 0
3805: PPUSH
3806: PPUSH
// Ru1_turrets := FilterUnitsInArea ( RuLane1 , [ [ f_side , 3 ] , [ f_btype , b_bunker ] ] ) ^ FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_breastwork ] ] ) ;
3807: LD_ADDR_EXP 7
3811: PUSH
3812: LD_INT 3
3814: PPUSH
3815: LD_INT 22
3817: PUSH
3818: LD_INT 3
3820: PUSH
3821: EMPTY
3822: LIST
3823: LIST
3824: PUSH
3825: LD_INT 30
3827: PUSH
3828: LD_INT 32
3830: PUSH
3831: EMPTY
3832: LIST
3833: LIST
3834: PUSH
3835: EMPTY
3836: LIST
3837: LIST
3838: PPUSH
3839: CALL_OW 70
3843: PUSH
3844: LD_INT 22
3846: PUSH
3847: LD_INT 3
3849: PUSH
3850: EMPTY
3851: LIST
3852: LIST
3853: PUSH
3854: LD_INT 30
3856: PUSH
3857: LD_INT 31
3859: PUSH
3860: EMPTY
3861: LIST
3862: LIST
3863: PUSH
3864: EMPTY
3865: LIST
3866: LIST
3867: PPUSH
3868: CALL_OW 69
3872: ADD
3873: ST_TO_ADDR
// levelS = [ 6 , 7 , 8 ] [ Difficulty ] ;
3874: LD_ADDR_EXP 4
3878: PUSH
3879: LD_INT 6
3881: PUSH
3882: LD_INT 7
3884: PUSH
3885: LD_INT 8
3887: PUSH
3888: EMPTY
3889: LIST
3890: LIST
3891: LIST
3892: PUSH
3893: LD_OWVAR 67
3897: ARRAY
3898: ST_TO_ADDR
// levelEng = [ 6 , 7 , 8 ] [ Difficulty ] ;
3899: LD_ADDR_EXP 6
3903: PUSH
3904: LD_INT 6
3906: PUSH
3907: LD_INT 7
3909: PUSH
3910: LD_INT 8
3912: PUSH
3913: EMPTY
3914: LIST
3915: LIST
3916: LIST
3917: PUSH
3918: LD_OWVAR 67
3922: ARRAY
3923: ST_TO_ADDR
// for i in Ru1_turrets do
3924: LD_ADDR_EXP 2
3928: PUSH
3929: LD_EXP 7
3933: PUSH
3934: FOR_IN
3935: IFFALSE 4114
// begin if IsInUnit ( i ) = 0 then
3937: LD_EXP 2
3941: PPUSH
3942: CALL_OW 310
3946: PUSH
3947: LD_INT 0
3949: EQUAL
3950: IFFALSE 4112
// begin uc_side = 3 ;
3952: LD_ADDR_OWVAR 20
3956: PUSH
3957: LD_INT 3
3959: ST_TO_ADDR
// uc_nation = 3 ;
3960: LD_ADDR_OWVAR 21
3964: PUSH
3965: LD_INT 3
3967: ST_TO_ADDR
// hc_gallery =  ;
3968: LD_ADDR_OWVAR 33
3972: PUSH
3973: LD_STRING 
3975: ST_TO_ADDR
// hc_name =  ;
3976: LD_ADDR_OWVAR 26
3980: PUSH
3981: LD_STRING 
3983: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3984: LD_ADDR_OWVAR 29
3988: PUSH
3989: LD_INT 9
3991: PPUSH
3992: LD_INT 11
3994: PPUSH
3995: CALL_OW 12
3999: PUSH
4000: LD_INT 10
4002: PPUSH
4003: LD_INT 12
4005: PPUSH
4006: CALL_OW 12
4010: PUSH
4011: EMPTY
4012: LIST
4013: LIST
4014: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
4015: LD_ADDR_OWVAR 31
4019: PUSH
4020: LD_EXP 4
4024: PUSH
4025: LD_INT 0
4027: PPUSH
4028: LD_INT 5
4030: PPUSH
4031: CALL_OW 12
4035: PUSH
4036: LD_INT 0
4038: PPUSH
4039: LD_INT 5
4041: PPUSH
4042: CALL_OW 12
4046: PUSH
4047: LD_INT 0
4049: PPUSH
4050: LD_INT 5
4052: PPUSH
4053: CALL_OW 12
4057: PUSH
4058: EMPTY
4059: LIST
4060: LIST
4061: LIST
4062: LIST
4063: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4064: LD_ADDR_OWVAR 27
4068: PUSH
4069: LD_INT 1
4071: PPUSH
4072: LD_INT 2
4074: PPUSH
4075: CALL_OW 12
4079: ST_TO_ADDR
// hc_class = 1 ;
4080: LD_ADDR_OWVAR 28
4084: PUSH
4085: LD_INT 1
4087: ST_TO_ADDR
// un := CreateHuman ;
4088: LD_ADDR_VAR 0 2
4092: PUSH
4093: CALL_OW 44
4097: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
4098: LD_VAR 0 2
4102: PPUSH
4103: LD_EXP 2
4107: PPUSH
4108: CALL_OW 52
// end ; end ;
4112: GO 3934
4114: POP
4115: POP
// for i in depotRU1 do
4116: LD_ADDR_EXP 2
4120: PUSH
4121: LD_INT 112
4123: PUSH
4124: FOR_IN
4125: IFFALSE 4336
// begin l = 0 ;
4127: LD_ADDR_EXP 3
4131: PUSH
4132: LD_INT 0
4134: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4135: LD_EXP 2
4139: PPUSH
4140: CALL_OW 310
4144: PUSH
4145: LD_INT 0
4147: EQUAL
4148: IFFALSE 4334
// begin repeat uc_side = 3 ;
4150: LD_ADDR_OWVAR 20
4154: PUSH
4155: LD_INT 3
4157: ST_TO_ADDR
// uc_nation = 3 ;
4158: LD_ADDR_OWVAR 21
4162: PUSH
4163: LD_INT 3
4165: ST_TO_ADDR
// hc_gallery =  ;
4166: LD_ADDR_OWVAR 33
4170: PUSH
4171: LD_STRING 
4173: ST_TO_ADDR
// hc_name =  ;
4174: LD_ADDR_OWVAR 26
4178: PUSH
4179: LD_STRING 
4181: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4182: LD_ADDR_OWVAR 29
4186: PUSH
4187: LD_INT 9
4189: PPUSH
4190: LD_INT 11
4192: PPUSH
4193: CALL_OW 12
4197: PUSH
4198: LD_INT 10
4200: PPUSH
4201: LD_INT 12
4203: PPUSH
4204: CALL_OW 12
4208: PUSH
4209: EMPTY
4210: LIST
4211: LIST
4212: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , levelEng , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
4213: LD_ADDR_OWVAR 31
4217: PUSH
4218: LD_INT 0
4220: PPUSH
4221: LD_INT 5
4223: PPUSH
4224: CALL_OW 12
4228: PUSH
4229: LD_EXP 6
4233: PUSH
4234: LD_INT 0
4236: PPUSH
4237: LD_INT 5
4239: PPUSH
4240: CALL_OW 12
4244: PUSH
4245: LD_INT 0
4247: PPUSH
4248: LD_INT 5
4250: PPUSH
4251: CALL_OW 12
4255: PUSH
4256: EMPTY
4257: LIST
4258: LIST
4259: LIST
4260: LIST
4261: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4262: LD_ADDR_OWVAR 27
4266: PUSH
4267: LD_INT 1
4269: PPUSH
4270: LD_INT 2
4272: PPUSH
4273: CALL_OW 12
4277: ST_TO_ADDR
// hc_class = 2 ;
4278: LD_ADDR_OWVAR 28
4282: PUSH
4283: LD_INT 2
4285: ST_TO_ADDR
// un := CreateHuman ;
4286: LD_ADDR_VAR 0 2
4290: PUSH
4291: CALL_OW 44
4295: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
4296: LD_VAR 0 2
4300: PPUSH
4301: LD_EXP 2
4305: PPUSH
4306: CALL_OW 52
// l = l + 1 ;
4310: LD_ADDR_EXP 3
4314: PUSH
4315: LD_EXP 3
4319: PUSH
4320: LD_INT 1
4322: PLUS
4323: ST_TO_ADDR
// until l = 4 ;
4324: LD_EXP 3
4328: PUSH
4329: LD_INT 4
4331: EQUAL
4332: IFFALSE 4150
// end ; end ;
4334: GO 4124
4336: POP
4337: POP
// for i in armouryRU7 do
4338: LD_ADDR_EXP 2
4342: PUSH
4343: LD_INT 413
4345: PUSH
4346: FOR_IN
4347: IFFALSE 4575
// begin l = 0 ;
4349: LD_ADDR_EXP 3
4353: PUSH
4354: LD_INT 0
4356: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
4357: LD_EXP 2
4361: PPUSH
4362: CALL_OW 310
4366: PUSH
4367: LD_INT 0
4369: EQUAL
4370: IFFALSE 4573
// begin repeat uc_side = 3 ;
4372: LD_ADDR_OWVAR 20
4376: PUSH
4377: LD_INT 3
4379: ST_TO_ADDR
// uc_nation = 3 ;
4380: LD_ADDR_OWVAR 21
4384: PUSH
4385: LD_INT 3
4387: ST_TO_ADDR
// hc_gallery =  ;
4388: LD_ADDR_OWVAR 33
4392: PUSH
4393: LD_STRING 
4395: ST_TO_ADDR
// hc_name =  ;
4396: LD_ADDR_OWVAR 26
4400: PUSH
4401: LD_STRING 
4403: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4404: LD_ADDR_OWVAR 29
4408: PUSH
4409: LD_INT 9
4411: PPUSH
4412: LD_INT 11
4414: PPUSH
4415: CALL_OW 12
4419: PUSH
4420: LD_INT 10
4422: PPUSH
4423: LD_INT 12
4425: PPUSH
4426: CALL_OW 12
4430: PUSH
4431: EMPTY
4432: LIST
4433: LIST
4434: ST_TO_ADDR
// hc_skills = [ levelS , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
4435: LD_ADDR_OWVAR 31
4439: PUSH
4440: LD_EXP 4
4444: PUSH
4445: LD_INT 0
4447: PPUSH
4448: LD_INT 5
4450: PPUSH
4451: CALL_OW 12
4455: PUSH
4456: LD_INT 0
4458: PPUSH
4459: LD_INT 5
4461: PPUSH
4462: CALL_OW 12
4466: PUSH
4467: LD_INT 0
4469: PPUSH
4470: LD_INT 5
4472: PPUSH
4473: CALL_OW 12
4477: PUSH
4478: EMPTY
4479: LIST
4480: LIST
4481: LIST
4482: LIST
4483: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4484: LD_ADDR_OWVAR 27
4488: PUSH
4489: LD_INT 1
4491: PPUSH
4492: LD_INT 2
4494: PPUSH
4495: CALL_OW 12
4499: ST_TO_ADDR
// hc_class = 1 ;
4500: LD_ADDR_OWVAR 28
4504: PUSH
4505: LD_INT 1
4507: ST_TO_ADDR
// un := CreateHuman ;
4508: LD_ADDR_VAR 0 2
4512: PUSH
4513: CALL_OW 44
4517: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
4518: LD_VAR 0 2
4522: PPUSH
4523: LD_EXP 2
4527: PPUSH
4528: CALL_OW 52
// l = l + 1 ;
4532: LD_ADDR_EXP 3
4536: PUSH
4537: LD_EXP 3
4541: PUSH
4542: LD_INT 1
4544: PLUS
4545: ST_TO_ADDR
// until l = [ 3 , 4 , 4 ] [ Difficulty ] ;
4546: LD_EXP 3
4550: PUSH
4551: LD_INT 3
4553: PUSH
4554: LD_INT 4
4556: PUSH
4557: LD_INT 4
4559: PUSH
4560: EMPTY
4561: LIST
4562: LIST
4563: LIST
4564: PUSH
4565: LD_OWVAR 67
4569: ARRAY
4570: EQUAL
4571: IFFALSE 4372
// end ; end ;
4573: GO 4346
4575: POP
4576: POP
// end ;
4577: LD_VAR 0 1
4581: RET
// export function RUSLane5 ; var un ; begin
4582: LD_INT 0
4584: PPUSH
4585: PPUSH
// end ;
4586: LD_VAR 0 1
4590: RET
// export function RUSLane6 ; var un ; begin
4591: LD_INT 0
4593: PPUSH
4594: PPUSH
// end ;
4595: LD_VAR 0 1
4599: RET
